The present invention relates to information collection systems. More specifically, the invention provides a system for collecting information regarding a device or a user of a device.
Different types of systems and procedures are available for collecting or retrieving information from a device or a user of a device. The collected information may be used to analyze system performance, identify existing problems, or identify potential problems. If a problem or potential problem is identified, a user or administrator of the system is notified of the problem and can take an appropriate action.
Existing procedures for collecting or retrieving information are typically contained in a software application or a built-in diagnostic routine that performs one or more procedures to monitor specific portions of a system. Generally, these procedures are included in a single application or a diagnostic routine that retrieves information about the system and analyzes the retrieved information. Therefore, these procedures retrieve a particular set of information and perform a particular analysis on the information.
These existing applications or diagnostic routines are not easily modified if a user or administrator wants to change the information retrieved or change the analysis performed on the retrieved information. To make such a change requires modifying the application source code or modifying the built-in diagnostic routine, both of which can be complicated and time-consuming.
Additionally, many existing applications are invoked and operated by a user of the system. Instead of running automatically or running in a xe2x80x9cbackgroundxe2x80x9d mode, these applications are executed at the direction of the user. Thus, to retrieve data about the system using this type of application, the user must install the application and know how to operate and command the application. If the application is used infrequently (e.g., only when a problem occurs), the user is not likely to be proficient when operating the application. In this situation, the user may need to re-learn the operation of the application before retrieving and analyzing data about the system.
It is therefore desirable to provide a system that collects information automatically while requiring minimal interaction with the user of the system. Additionally, it is desirable to provide an information collection system that is easily modified to collect different types of data and perform different operations on the collected data.
Embodiments of the present invention provide a system for passively and actively collecting information about a device, such as a computing device and/or the user of the device. The system uses one or more discovery agents to collect information about a device or its user. The discovery agents do not have intelligence to understand the collected information. Instead, the discovery agents communicate the collected information to a discovery engine, which receives collected data from the discovery agents and applies discovery rules to the collected data. The discovery rules determine what, if any, action is to be taken based on the collected data.
In one embodiment, the discovery rule is transmitted across a communication link to a computer system and the resulting information, e.g. analysis and collected information, is received back from the computer system through the link. In some instances, the sending of the discovery rule may be due to a user request. At times, the sender of the request is a remote individual. For example, the request may be a request for assistance made to a technical support representative or sales representative. In this case, the collected information/analysis information may be used to provide a respond to the user request.
In still other embodiments, the discovery rule is transmitted automatically, when the computer system establishes a connection with a server.
In particular embodiments of the invention receives information from a discovery agent, which collects information when activated. The discover agents may be periodically activated to collect information. The invention determines a discovery rule to be applied to the information received from the discovery agent. The discovery rule is then applied to the information received from the discovery agent. The discovery agent and the discovery rule are separate code sequences.